home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / util / misc / Fudgit233.lha / Source / Installation < prev    next >
Encoding:
Text File  |  1993-12-14  |  12.0 KB  |  364 lines

  1. #######################################
  2. This is the Installation file of FUDGIT
  3. #######################################
  4.  
  5. An explanation of the Makefile flags can be found at the end
  6. of this file.
  7.  
  8. Installation:
  9.     - Read this file! Some OS related comments will be found below.
  10.     - Edit some lines of fudgit.h for the location of the help file,
  11.         default pager, etc...
  12.     - Edit the master Makefile for the location of the help file,
  13.         optimization flags, pop function or macros.
  14.  
  15.  
  16.     Optional:
  17.     - Edit the minit.c file to include your built-in macros and aliases.
  18.     - Edit the math.c, init.c files to add more built-in math functions.
  19.  
  20.     Then type:
  21.  
  22.     % make OS
  23.  
  24.     where OS is one of:
  25.  
  26.         aix datagen hpux irix4 linux next osf ultrix sun3 sun4
  27.  
  28.     and then type:
  29.  
  30.     % make install
  31.  
  32.     In case of compilation problems:
  33.     - If the problem is due to the dynamic loading feature, set
  34.         the DL variable to "DL=NO DLLIB= DLAR=" so that the dl
  35.         features is not compiled. Your operating system might
  36.         not support (some OS features are sometimes not installed
  37.         because all the OS (man pages, dictionary, etc.) simply
  38.         does not fit on the disk) all the options required to have
  39.         dynamic loading.
  40.     - Edit the makefile corresponding to your OS to see if it suits
  41.         your needs. They are located in the src/ directory and are
  42.         named Makefile.OS where OS stands as above. Do not try to
  43.         compile the readline package with the optimizer -O since it
  44.         does not well behave in this case. The rest of the code can be
  45.         optimized however (and it is by default).
  46.  
  47.     - Do not strip the executable if your OS supports the dynamic
  48.         loader.
  49.  
  50.     - Send comments or suggestions to <isaac@physics.mcgill.ca>.
  51.         If you improve the code or port it to another platform let me
  52.         know. If you use it on a regular basis and would like to have
  53.         any patch or later release let me know. If you find any bug
  54.         too.
  55.  
  56. ****************** Therefore, step by step:
  57.  
  58. 1- Edit the Makefile to give values for LIBDIR and BINDIR. Also
  59.    read the comments below for achitecture-dependent problems.  You
  60.    should have a look at the only configuration file src/fudgit.h and
  61.    make changes if necessary. For some reasons, FUDGIT must be linked
  62.    by GNU ld(1) link editor in order to be able to use dynamic loading
  63.    features on SUNOS.
  64.  
  65.    The MACROPOP option tells FUDGIT to use macros for pop()'ing and
  66.    push()'ing on its stack. Use only if you need fast code over well
  67.    written scripts. I don't recommand it for beginners. The speed
  68.    factor obtained depends on the code and varies from 1.3 to 1.9.
  69.  
  70.    The VI_MODE option includes the code required by vi-style line editing.
  71.    Enable only if some users are going to use it. The vi mode is enabled
  72.    by including
  73.    set editing-mode vi
  74.    in the user's  ~/.inputrc file. The default is emacs style. Read
  75.    the appendices of FUDGIT documentation.
  76.  
  77. 2- Type make with the proper architecture name. 'make' typed with
  78.    no target will list supported architectures.
  79.  
  80. 3- Type 'make install'. This will build the help file and copy
  81.    the executable and help file to the proper directories.
  82.    DO NOT STRIP THE EXECUTABLE if the dynamic loader could
  83.    compile on your OS. (At time of writing, only IRIX, SUNOS
  84.    and ULTRIX supported it).
  85.  
  86. 4- Print a copy of the manual docs/fudgit.ps. The Postscript
  87.    manual is created by the 'make manual' command issued from
  88.    any of the main or the 'docs' directory. European users should
  89.    probably include a4 in the documentstyle before compiling.
  90.  
  91. 5- Send problems, comments, suggestions to:
  92.  
  93.        <isaac@physics.mcgill.ca>
  94.  
  95.    At least, send me an e-mail postcard if you use it.
  96.  
  97.    A note to hackers: Setting ts=4 in vi will make my code more
  98.    legible.
  99.  
  100. ************** Here are some OS related comments:
  101.  
  102. ----- SUN3 and SUN4
  103.  
  104. To compile on SUNOS 3.5 type:
  105.  
  106.     % make sun3
  107.  
  108. and then
  109.  
  110.     % make install
  111.  
  112. after having properly set the LIBDIR variable in the master Makefile.
  113.  
  114. Change sun3 to sun4 to compile on a SUN4. sun3 can only compile
  115. with gcc since the code is full ANSI.
  116.  
  117. For sun4 only:
  118.  
  119. In order to be able to use the dynamic loading feature of FUDGIT,
  120. the executable fudgit must be linked by the GNU ld(1) link editor.
  121. Edit the master Makefile to use gcc if you have it before compiling
  122. or after all the objects are built (i.e. make sun4 with cc and the
  123. remove fudgit executable, edit the Makefile to put gcc and make sun4
  124. again). If you don't have gcc, you should do one of the following:
  125.  
  126. 1- install GNU gcc, (better later than never);
  127.  
  128. 2- ask for a compiled version of FUDGIT from a friend having a machine
  129. with the same OS having GNU gcc;
  130.  
  131. 3- not use the `install' command of FUDGIT.
  132.  
  133.  DO NOT STRIP THE EXECUTABLE if you want to use dynamic loading.
  134.  
  135.  I've been reported that SPARC 2 could require the DALIGN flag due
  136.  to a different alignment between double and int. Read the
  137.  src/Makefile.sun4 file on how to define this variable.
  138.  
  139.  If you have problem getting the dynamic loading feature compiled
  140.  just turn it off using the instructions in the master Makefile.
  141.  
  142.  -------
  143.  
  144.  SUNOS 3.5 does not seem to fully support readline as is it.
  145.  The bug is that ioctl calls report that the file descriptor
  146.  is not appropriate for this kind of ioctl call. Any clue?
  147.  Macro IOCTL_DEBUG can be defined while compiling readline
  148.  in order to trace the deficiency. 
  149.  
  150.  The port SUN4 has been made blindly since I have no access to a SUN4.
  151.  There was a bug with strod() in SUNOS 3.5. Is it still there in later
  152.  versions (e.g. SUNOS 4.1)? Search for "strod" in file command.c to
  153.  know more.
  154.  
  155. ----- ULTRIX
  156.  
  157. To compile on ULTRIX type:
  158.  
  159.     % make ultrix
  160.  
  161. and then
  162.  
  163.     % make install
  164.  
  165. after having properly set the LIBDIR variable in the master Makefile.
  166.  
  167.  DO NOT STRIP THE EXECUTABLE if you want to use dynamic loading.
  168.  Dynamic loading is only supported on vax machines running
  169.  ULTRIX (no mips, since they have coff object format).
  170.  
  171.  If you have problem getting the dynamic loading feature compiled
  172.  just turn it off using the instructions in the master Makefile.
  173.  
  174. ----- IRIX4
  175.  
  176.  The source compiles on IRIX 3.3.1 and higher as it is.
  177.  (FUDGIT was first developped on IRIX so it is fully tested on it).
  178.  
  179.  We have the -D_BSD_COMPAT in the makefile so
  180.  that the signal() functions be of the proper kind.
  181.  Just type:
  182.  
  183.     % make irix4
  184.  
  185.  and then
  186.  
  187.     % make install
  188.  
  189.  after having properly set the LIBDIR variable in the master Makefile.
  190.  The program has been developped primarily on IRIX so that the code
  191.  has been heavily tested on it. DO NOT STRIP THE EXECUTABLE.
  192.  The macro SAME_STPROC should be defined in src/Makefile.irix4
  193.  if the version of your operating system IRIX == 4.0.5. (see `uname(1)')
  194.  
  195.  The executable can be compiled by either cc or gcc.
  196.  
  197.  If you have problem getting the dynamic loading feature compiled
  198.  just turn it off using the instruction in the master Makefile.
  199.  
  200.  
  201. ----- HPUX
  202.  
  203.  To compile on HPUX type:
  204.  
  205.     % make hpux
  206.  
  207.  and then
  208.  
  209.     % make install
  210.  
  211.  after having properly set the LIBDIR variable in the master Makefile.
  212.  The math library is fairly incomplete on HPUX. An extra file
  213.  hpuxmath.c defines basic math functions as sinh. The precision
  214.  on these functions  is not good, precisely because math function
  215.  log1p is missing. I wonder why the minimal BSD math library is
  216.  not on these machines...
  217.  
  218.  I've been reported some memory alignment problems on HP750.
  219.  The problem is that simple commands like 
  220.  
  221.  fudgit> let x=2
  222.  
  223.  leads to a program crash due to a bus error. To get around this
  224.  problem, define DALIGN in src/Makefile.hpux. This forces the code to
  225.  use bcopy() to transfer doubles on a string of int (pointers) while
  226.  reading and writing. The resulting code is slightly slower, but
  227.  stable.
  228.  
  229.  Some flavors of HPUX need -lmalloc some don't. If it complains about
  230.  not being able to find malloc library just comment it in or out in
  231.  src/Makefile.hpux.
  232.  
  233.  The math library uses HUGE instead of Infinity and does not have NaN
  234.  values in conjunction with error flags. Since I have only remote access
  235.  to HPUX, parts or src/math.c:errorcheck() should be rewritten (#ifdef
  236.  HPUX) to account for this peculiar behavior. Anybody interested?
  237.  
  238.  HPUX does not supports dynamic loading.
  239.  
  240.  The ansi version of Fudgit has been tested on HPUX 8.07. Some fiddling
  241.  might be required to comply with other (too many) versions.
  242.  
  243. ----- AIX
  244.  
  245.  To compile on AIX type:
  246.  
  247.     % make aix
  248.  
  249.  and then
  250.  
  251.     % make install
  252.  
  253.  after having properly set the LIBDIR variable in the master Makefile.
  254.  
  255.  This package requires termcap. The termcap library needs /etc/termcap.
  256.  On AIX (3.1), it happened that readline could not find a terminal
  257.  entry. This is due to the absence of an entry for your terminal type
  258.  in the file /etc/termcap, or, worse, an absence of the file itself!
  259.  Make sure that /etc/termcap is on your system. From what I could see,
  260.  the file is often in /lib/libtermcap/termcap.src while the library
  261.  searches for /etc/termcap. If this is the case, just make a soft link
  262.  (as root)! i.e.:
  263.  
  264.  % ln -s /lib/libtermcap/termcap.src /etc/termcap
  265.  
  266.  AIX does not supports dynamic loading.
  267.  
  268. ----- LINUX 
  269.  
  270.  To compile on LINUX type:
  271.  
  272.     % make linux
  273.  
  274.  and then
  275.  
  276.     % make install
  277.  
  278.  after having properly set the LIBDIR variable in the master Makefile.
  279.  Linux does not supports dynamic loading. Also, the `show memory' function
  280.  is not available. Comment out the lexical analyser flag in the Makefile.
  281.  
  282. ----- NeXT 
  283.  
  284.  To compile on NeXT type:
  285.  
  286.     % make next
  287.  
  288.  and then
  289.  
  290.     % make install
  291.  
  292.  after having properly set the LIBDIR variable in the master Makefile.
  293.  Next does not supports dynamic loading. Also, the `show memory' function
  294.  is not available.
  295.  
  296. ----- GNUPLOT
  297.  
  298.  A comment about GNUPLOT
  299.  
  300.  By default, GNUPLOT versions below 3.2 exit on error while called in
  301.  non-interactive mode. In order to use gnuplot without having it
  302.  exiting at each mistyped character, the code 'plot.c' has to be
  303.  modified to change: (near line 260)
  304.  
  305.     if (!interactive)
  306.         done(IO_ERROR)
  307.  
  308.  for    
  309.     if (!interactive && argc != 1)
  310.         done(IO_ERROR)
  311.  
  312.  and recompile. Also, it is sometimes advisable to double the line size from
  313.  1024 to 2048 if you use a lot of replots (and # of tokens accordingly).
  314.  See plot.h in the source code of gnuplot.
  315.  
  316.  If you have GNUPLOT 3.2 the code takes care of not exiting
  317.  if no input file has been given on the command line.
  318.  So no modification is required for GNUPLOT 3.2 unless
  319.  you do a lot of `replot's ( > 15 files on the same graphs)
  320.  in which case I recommend you to double the line size to 2048,
  321.  along with related quantities (e.g. number of tokens).
  322.  
  323. ########################################################################
  324. Hacker's guide to the flags understood by Fudgit code :
  325.  
  326. Math functions:
  327. NOGAMMA: Your system has no gamma(3M) function.
  328. NOTRUNC: Your system has no trunc(3M) function.
  329. NORINT: Your system has no rint(3M) function.
  330. NOCBRT: Your system has no cbrt(3M) function.
  331. NOHYP_TRIGO: Your system has no hyperbolic trigonometric functions.
  332. NODRAND48: Your system has no drand48(). Use rand() instead.
  333.  
  334. Varios:
  335. NOMALLINFO: Your system has no mallinfo(3X) function.
  336. NOSETPGID: Your system only has setpgrp() and not setpgid().
  337.  
  338. Signals:
  339. VOID_SIGHANDLER: Your system's signal() returns a pointer to a function
  340.     returning a void.
  341. RESTART_SIGHANDLER: Your system (probably a sysV variant) requires
  342.     to restart the signal after a catch.
  343. NOWAITPID: Your system does not support the waitpid() posix command.
  344. WAIT4: Your system supports wait4. Define only if NOWAITPID is defined.
  345.  
  346. Special:
  347. DALIGN: You system requires double memory alignment.
  348. MACROPOP: No check is made on Fudgit stack for underflow.
  349.     It is quite stable and faster if defined.
  350. USG: Only required in readline. Should be defined on sysV systems. 
  351.  
  352. Compiler:
  353. NOALERTCHAR: Your compiler does not recognize \a as a bell 07.
  354. const=: Define 'const' identifier as null if your compiler
  355.     does not support it.
  356.  
  357. Include files:
  358. NOSTDLIB_H: Your system does not have a <stdlib.h>
  359. NOUNISTD_H: Your system does not have a <unistd.h>
  360. NOMALLOC_H: Your system does not have a <malloc.h>
  361.  
  362. Line editing:
  363. VI_MODE: Define to -DVI_MODE if you want to support vi style line editing.
  364.